package com.mi.service.impl;

import java.util.List;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.mi.bean.Manager;
import com.mi.db.DBProvider;
import com.mi.service.ILoginService;
import com.mi.utils.MyUtils;

public class LoginServiceImpl implements ILoginService {

	/**
	 * 保存和修改管理员信息
	 * 
	 * @param adminB 参数实体
	 * @return 操作结果
	 */
	@Override
	public int saveOrUpdateManager(Manager managerA) {
		// 默认返回值
		int i = 0;
		// 新增和修改的区别在于：参数实体类的主键字段是否为null，为null则是新增操作，不为null则是修改操作
		// 新增的sql语句
		if (managerA != null) {
			// 新增操作
			if (managerA.getManager_count() == null) {
				// 新增sql语句
				String strSql = "insert into manager(manager_name,manager_count,manager_psw,manager_tel,manager_img) values(?,?,?,?,?)";
				// 调用db层进行数据库操作
				i = MyUtils.getInstance(DBProvider.class).update(strSql, managerA.getManager_name(),managerA.getManager_count(),
						managerA.getManager_psw(),managerA.getManager_tel(),managerA.getManager_img()
						);
			} else {
				// 修改操作
			}
		}
		return i;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.nc.service.ILoginService#queryLoginInfo(com.nc.bean.AdminInfoBean)
	 */
	@Override
	public List<Manager> queryLoginInfo(Manager managerA) {
		// 调用db层进行数据库操作
		// 登录查询语句
		//获取用户输入的值
		String strMsg=managerA.getManager_name();
		//判断该用户所输入的账号是用户名还是邮箱
		//邮箱的情况
		if(strMsg.contains("@")) {
			//执行查询语句
			String sql = "select * from manager where manager_email = ? and manager_psw = ?";
			// 调用db层进行数据库操作
			// ResultSetHandler接口的实现类--BeanListHandler把结果集中的每行数据都封装成一个指定的JavaBean对象
			// 将数据封装成list<JavaBean>形式
			List<Manager> lstManager = MyUtils.getInstance(DBProvider.class).query(sql,
					new BeanListHandler<Manager>(Manager.class), managerA.getManager_name(), managerA.getManager_psw());
			return lstManager;
		}else {
		//账户名的情况
		//执型查询语句
			String sql = "select * from manager where manager_name = ? and manager_psw = ?";
			// 调用db层进行数据库操作
			// ResultSetHandler接口的实现类--BeanListHandler把结果集中的每行数据都封装成一个指定的JavaBean对象
			// 将数据封装成list<JavaBean>形式
			List<Manager> lstManager = MyUtils.getInstance(DBProvider.class).query(sql,
					new BeanListHandler<Manager>(Manager.class), managerA.getManager_name(), managerA.getManager_psw());
			return lstManager;
		}
	}
}
